#pragma once

#include "iostream"
#include "vector"
#include "algorithm"
#include "TypeDefin.h"

using namespace std;
/*HJJ QQ479287006
 *给定一棵二叉搜索树，请找出其中第 k 大的节点的值。
 * 输入: root = [3,1,4,null,2], k = 1
   3
  / \
 1   4
  \
   2
输出: 4
示例 2:

输入: root = [5,3,6,2,4,null,null,1], k = 3
       5
      / \
     3   6
    / \
   2   4
  /
 1
输出: 4


链接：https://leetcode.cn/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof

 * */
//todo 哎我草啊 右中左 是倒叙 左中右边是正序

int index = 0;
int ret = INT_MAX;

void kthLargestT(TreeNode *root, int k) {

    if (!root || ret != INT_MAX)
        return;

    kthLargestT(root->right, k);


    if (++index == k) {
        ret = root->val;
        return;
    }
    kthLargestT(root->left, k);

}

int kthLargest(TreeNode *root, int k) {
    kthLargestT(root, k);
    return ret;
}